package com.codemonkey.lq.common.util;

import java.util.HashMap;
import java.util.Map;

public final class MapHelper {
	private MapHelper() {
		throw new Error("Can not instantize ! ! !");
	}

	/**
	 * Value部分是引用拷贝
	 * 
	 * @param orginMap
	 * @return
	 */
	public static final Map<String, Object> copyMap(Map<String, Object> orginMap) {
		Map<String, Object> mapCopy = new HashMap<String, Object>(orginMap.size());

		for (String key : orginMap.keySet()) {
			mapCopy.put(key, orginMap.get(key));
		}

		return mapCopy;
	}

	/**
	 * 仿造Javascript - Ext - 中的同名方法 <br>
	 *   将 c 中属性复制到 o 中;已有的会被覆盖.
	 *
	 * @param orginMap
	 * @return
	 */
	public static final void apply(Map<String, Object> o, Map<String, Object> c) {
		// 2017/10/29, 才发觉这方法更轻易; 唉
		// o.putAll(c);
		
		for (Map.Entry<String, Object> entry : c.entrySet()) {
			o.put(entry.getKey(), entry.getValue());
		}
				
	}

	/**
	 * 仿造Javascript - Ext - 中的同名方法 <br>
	 *   将 c 中属性复制到 o 中;已有的会被覆盖.
	 *
	 * @param orginMap
	 * @return
	 */
	static final void applyIf(Map<String, Object> o, Map<String, Object> c) {
		// TODO
	}
}
